// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by sidekick. DO NOT EDIT.

//! Google Cloud Client Libraries for Rust - Vertex AI API
//!
//! **WARNING:** some RPCs have no corresponding Rust function to call them.
//! Typically these are streaming RPCs. We expect adding these RPCs in a
//! way that does not break the existing APIs or changes their behavior in a
//! significant way. We do anticipate a number of new crate dependencies
//! will be required. If you need these RPCs please open an issue in our
//! GitHub repository.
//!
//! This crate contains traits, types, and functions to interact with Vertex AI API
//! Most applications will use the structs defined in the [client] module.
//!
//! The client library types and functions are stable and not expected to change.
//! Please note that Google Cloud services do change from time to time. The client
//! libraries are designed to preserve backwards compatibility when the service
//! changes in compatible ways. For example, adding RPCs, or fields to messages
//! should not introduce breaking changes to the client libraries.
//!
//! # Available Clients
//!
//! * [DataFoundryService](client/struct.DataFoundryService.html)
//! * [DatasetService](client/struct.DatasetService.html)
//! * [DeploymentResourcePoolService](client/struct.DeploymentResourcePoolService.html)
//! * [EndpointService](client/struct.EndpointService.html)
//! * [EvaluationService](client/struct.EvaluationService.html)
//! * [FeatureOnlineStoreAdminService](client/struct.FeatureOnlineStoreAdminService.html)
//! * [FeatureOnlineStoreService](client/struct.FeatureOnlineStoreService.html)
//! * [FeatureRegistryService](client/struct.FeatureRegistryService.html)
//! * [FeaturestoreOnlineServingService](client/struct.FeaturestoreOnlineServingService.html)
//! * [FeaturestoreService](client/struct.FeaturestoreService.html)
//! * [GenAiCacheService](client/struct.GenAiCacheService.html)
//! * [GenAiTuningService](client/struct.GenAiTuningService.html)
//! * [IndexEndpointService](client/struct.IndexEndpointService.html)
//! * [IndexService](client/struct.IndexService.html)
//! * [JobService](client/struct.JobService.html)
//! * [LlmUtilityService](client/struct.LlmUtilityService.html)
//! * [MatchService](client/struct.MatchService.html)
//! * [MetadataService](client/struct.MetadataService.html)
//! * [MigrationService](client/struct.MigrationService.html)
//! * [ModelGardenService](client/struct.ModelGardenService.html)
//! * [ModelService](client/struct.ModelService.html)
//! * [NotebookService](client/struct.NotebookService.html)
//! * [PersistentResourceService](client/struct.PersistentResourceService.html)
//! * [PipelineService](client/struct.PipelineService.html)
//! * [PredictionService](client/struct.PredictionService.html)
//! * [ReasoningEngineExecutionService](client/struct.ReasoningEngineExecutionService.html)
//! * [ReasoningEngineService](client/struct.ReasoningEngineService.html)
//! * [ScheduleService](client/struct.ScheduleService.html)
//! * [SpecialistPoolService](client/struct.SpecialistPoolService.html)
//! * [TensorboardService](client/struct.TensorboardService.html)
//! * [VertexRagDataService](client/struct.VertexRagDataService.html)
//! * [VertexRagService](client/struct.VertexRagService.html)
//! * [VizierService](client/struct.VizierService.html)

#![cfg_attr(docsrs, feature(doc_cfg))]
#![allow(deprecated)]

/// The messages and enums that are part of this client library.
#[allow(clippy::module_inception)]
pub mod model;

pub use gax::Result;
pub use gax::error::Error;

#[allow(rustdoc::invalid_html_tags)]
#[allow(rustdoc::redundant_explicit_links)]
pub mod stub;

/// Concrete implementations of this client library traits.
pub mod client;

/// Request builders.
pub mod builder;

#[doc(hidden)]
pub(crate) mod tracing;

#[doc(hidden)]
pub(crate) mod transport;

/// The default host used by the service.
#[cfg(any(
    feature = "data-foundry-service",
    feature = "dataset-service",
    feature = "deployment-resource-pool-service",
    feature = "endpoint-service",
    feature = "evaluation-service",
    feature = "feature-online-store-admin-service",
    feature = "feature-online-store-service",
    feature = "feature-registry-service",
    feature = "featurestore-online-serving-service",
    feature = "featurestore-service",
    feature = "gen-ai-cache-service",
    feature = "gen-ai-tuning-service",
    feature = "index-endpoint-service",
    feature = "index-service",
    feature = "job-service",
    feature = "llm-utility-service",
    feature = "match-service",
    feature = "metadata-service",
    feature = "migration-service",
    feature = "model-garden-service",
    feature = "model-service",
    feature = "notebook-service",
    feature = "persistent-resource-service",
    feature = "pipeline-service",
    feature = "prediction-service",
    feature = "reasoning-engine-execution-service",
    feature = "reasoning-engine-service",
    feature = "schedule-service",
    feature = "specialist-pool-service",
    feature = "tensorboard-service",
    feature = "vertex-rag-data-service",
    feature = "vertex-rag-service",
    feature = "vizier-service",
))]
const DEFAULT_HOST: &str = "https://aiplatform.googleapis.com/";

#[cfg(any(
    feature = "data-foundry-service",
    feature = "dataset-service",
    feature = "deployment-resource-pool-service",
    feature = "endpoint-service",
    feature = "evaluation-service",
    feature = "feature-online-store-admin-service",
    feature = "feature-online-store-service",
    feature = "feature-registry-service",
    feature = "featurestore-online-serving-service",
    feature = "featurestore-service",
    feature = "gen-ai-cache-service",
    feature = "gen-ai-tuning-service",
    feature = "index-endpoint-service",
    feature = "index-service",
    feature = "job-service",
    feature = "llm-utility-service",
    feature = "match-service",
    feature = "metadata-service",
    feature = "migration-service",
    feature = "model-garden-service",
    feature = "model-service",
    feature = "notebook-service",
    feature = "persistent-resource-service",
    feature = "pipeline-service",
    feature = "prediction-service",
    feature = "reasoning-engine-execution-service",
    feature = "reasoning-engine-service",
    feature = "schedule-service",
    feature = "specialist-pool-service",
    feature = "tensorboard-service",
    feature = "vertex-rag-data-service",
    feature = "vertex-rag-service",
    feature = "vizier-service",
))]
pub(crate) mod info {
    const NAME: &str = env!("CARGO_PKG_NAME");
    const VERSION: &str = env!("CARGO_PKG_VERSION");
    lazy_static::lazy_static! {
        pub(crate) static ref X_GOOG_API_CLIENT_HEADER: String = {
            let ac = gaxi::api_header::XGoogApiClient{
                name:          NAME,
                version:       VERSION,
                library_type:  gaxi::api_header::GAPIC,
            };
            ac.rest_header_value()
        };
    }
}
